package com.imprenta.ejb;



import java.util.Date;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.hibernate.util.HibernateUtil;
import com.imprenta.entities.Cliente;
import com.imprenta.entities.Confcaractproducto;
import com.imprenta.entities.Detallepedido;
import com.imprenta.entities.Pedido;
import com.imprenta.entities.Producto;
import com.imprenta.entities.Resumenpedido;
import com.imprenta.model.ResumenPedidoBase;

public class EjbBuyProduct {
	
	public static void buyProduct() {
		
		Session session = HibernateUtil.getSessionFactory().openSession();
		try {
			if (true) {
				
			}
		} catch (HibernateException he) {
			// TODO: handle exception
			he.printStackTrace();
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			if (session != null) {
				session.close();
			}
		} 
		
	}//end buyproduct
	
	public static boolean insertTablaPedido(ResumenPedidoBase pedidoBase){
		Session session = HibernateUtil.getSessionFactory().openSession();
		boolean sucess = false;
		Transaction transaction = null;
		try {
			transaction = session.beginTransaction();			
			Pedido pedido = new Pedido();//DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");Date date = new Date();
			/*Insertando en pedido*/
			Cliente c = new Cliente();
			c.setClienteid(pedidoBase.getIdcliente());
			
			pedido.setFecha(new Date());
			pedido.setCliente(c);
			session.save(pedido);
			/*Insertando en pedido*/
			
			/*Insertando en detallepedido*/
			Detallepedido dPedido = new Detallepedido();
			Producto p = new Producto();
			p.setProductoid(pedidoBase.getIdProducto());
			dPedido.setPedido(pedido);
			dPedido.setProducto(p);
			dPedido.setCantidad(pedidoBase.getCantidad());
			dPedido.setPrecio(pedidoBase.getPrecio());
			dPedido.setImagenarchivo(pedidoBase.getImagen());			
			session.save(dPedido);
			/*Insertando en detallepedido*/
			
			/*Insertando en resumenpedido*/
			Resumenpedido rPedido = new Resumenpedido();
			Confcaractproducto ccp = new Confcaractproducto();
			
			ccp.setConfcaractproductoid(pedidoBase.getIdTamanio());
			rPedido.setConfcaractproducto(ccp);
			rPedido.setDetallepedido(dPedido);
			session.save(rPedido);
			
			Resumenpedido rPedido2 = new Resumenpedido();
			Confcaractproducto ccp2 = new Confcaractproducto();
			ccp2.setConfcaractproductoid(pedidoBase.getIdPapel());
			rPedido2.setConfcaractproducto(ccp2);
			rPedido2.setDetallepedido(dPedido);
			session.save(rPedido2);
			
			Resumenpedido rPedido3 = new Resumenpedido();
			Confcaractproducto ccp3 = new Confcaractproducto();
			ccp3.setConfcaractproductoid(pedidoBase.getIdTintas());
			rPedido3.setConfcaractproducto(ccp3);
			rPedido3.setDetallepedido(dPedido);
			session.save(rPedido3);
			
			Resumenpedido rPedido4 = new Resumenpedido();
			Confcaractproducto ccp4 = new Confcaractproducto();
			ccp4.setConfcaractproductoid(pedidoBase.getIdPlastificado());
			rPedido4.setConfcaractproducto(ccp4);
			rPedido4.setDetallepedido(dPedido);
			session.save(rPedido4);
			
			
			transaction.commit();
			sucess = true;
			
		} catch (HibernateException he) {
			// TODO: handle exception
			if (transaction != null) {
				transaction.rollback();
			}
			sucess = false;
			he.printStackTrace();
		}catch (Exception e) {
			// TODO: handle exception
			if (transaction != null) {
				transaction.rollback();
			}
			sucess = false;
			e.printStackTrace();
		}finally{
			if (session != null) {
				session.close();
			}
		}
		return sucess;
	}//end insertpedido
	
	public void insertDetallePedido() {
		
	}//end insertdetallepedido

}
